const {prisma, minioClient, mqttClient}=require('./utils.js')

class InformationController{
    /**
     * POST：上传文件
     * @param {string} req.body.content_type 
     * 文件类型：
     *  //file类型
     *  .doc        application/msword
     *  .docx       application/vnd.openxmlformats-officedocument.wordprocessingml.document
     *  .ppt        application/vnd.ms-powerpoint
     *  .pptx       application/vnd.openxmlformats-officedocument.presentationml.presentation
     *  .xls        application/vnd.ms-excel
     *  .xlsx       application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
     *  .pdf        application/pdf
     *  .txt        text/plain
     *  
     *  //image类型
     *  .webp       image/webp
     *  .png        image/png
     *  .jpg/.jpeg  image/jpeg
     *  .gif        image/gif
     *  .svg        image/svg+xml
     * 
     *  //media类型
     *  .weba       audio/webm
     *  .wav        audio/wav
     *  .mp3        audio/mp3
     * 
     *  .webm       video/webm
     *  .mpg/.mpeg  video/mpeg
     *  .avi        video/x-msvideo
     *  .wmv        video/x-ms-wmv
     * @param {blob} req.files.file    文件
     * @returns
     * 500 内部错误
     * 200 返回头像名
     */
    async upload(req,res){
        console.log(req.files)
        let file=req.files.file
        let content_type=req.body.content_type

        var name=Date.now().toString()
        try{
            var info=await minioClient.fPutObject('information',name,file.path,{'Content-Type':content_type})
            console.log('文件上传成功：'+JSON.stringify(info))
            res.send(200,{name:name})
        }catch(err){
            console.error(err)
            res.send(500,{errmsg:'minio存储失败'})
        }
    }
}

module.exports=new InformationController()